﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Data;

namespace SBS
{
    public class KundeKatalog
    {
        private List<Kunde> kunder;
        private Kunde aktivKunde;

        public KundeKatalog()
        {
            
        }
    
        public List<Kunde> Kunder
        {
            get
            {
                return kunder;
            }
            set
            {
                kunder = value;
            }
        }

        public Kunde AktivKunde
        {
            get { return aktivKunde; }
            set { aktivKunde = value; }
        }

        public void HentKundeInfo(int Knr)
        {
            aktivKunde = Data.Kunde_DB.HentKundeInfo(Knr);
        }
        public bool GemKunde(out int Knr)
        {
            return Kunde_DB.GemKunde(this.aktivKunde, out Knr);
        }
        public string HentByNavn(int postNr)
        {
            return Kunde_DB.HentByNavn(postNr);
        }

        public void HentKundeSidsteBesøgsRapport(DateTime dato)
        {
            kunder = Kunde_DB.HentKundeSidsteBesøgsRapport(dato);
        }

        public bool OpdaterKunde()
        {
            return Data.Kunde_DB.OpdaterKunde(aktivKunde);
        }

        public void HentKundeListe()
        {
            kunder = Data.Kunde_DB.HentKundeListe();
        }

        public void HentScootereMedEjer()
        {
            kunder = Data.Kunde_DB.HentScootereMedEjer();
        }

       
    }

    public class Kunde
    {
        private Dictionary<string,Scooter> scootere;
        private string fornavn;
        private string efternavn;
        private string mail;
        private string bynavn;
        private int postnr;
        private string adresse;
        private string tlfNr;
        private int knr;

        public Kunde()
        {
            scootere = new Dictionary<string, Scooter>();
        }

        public Kunde(int knr, string fornavn, string efternavn, string mail, string adresse,string bynavn, int postnr, string tlfnr)
        {
            this.fornavn = fornavn;
            this.efternavn = efternavn;
            this.adresse = adresse;
            this.mail = mail;
            this.bynavn = bynavn;
            this.postnr = postnr;
            this.tlfNr = tlfnr;
            this.knr = knr;
            scootere = new Dictionary<string, Scooter>();
        }

       

        public Kunde(int knr, string fornavn, string efternavn, string mail, string adresse, int postnr, string tlfnr)
        {
            this.fornavn = fornavn;
            this.efternavn = efternavn;
            this.adresse = adresse;
            this.mail = mail;
            this.postnr = postnr;
            
            this.tlfNr = tlfnr;
            this.knr = knr;
        }

        public Kunde(string fornavn, string efternavn, string adresse, string bynavn, int postnr, string Regnr, Scooter s)
        {
            this.fornavn = fornavn;
            this.efternavn = efternavn;
            this.adresse = adresse;
            this.bynavn = bynavn;
            this.postnr = postnr;
            scootere = new Dictionary<string, Scooter>();
            scootere.Add(Regnr,s);
        }


        public int Knr
        {
            get { return knr; }
            set { knr = value; }
        }

        public Dictionary<string, Scooter> Scootere
        {
            get
            {
                return scootere;
            }
            set
            {
                scootere = value;
            }
        }


        public string Fornavn
        {
            get
            {
                return fornavn;
            }
            set
            {
                fornavn = value;
            }
        }

        public string Efternavn
        {
            get
            {
                return efternavn;
            }
            set
            {
                efternavn = value;
            }
        }

        public string TlfNr
        {
            get { return tlfNr; }
            set { tlfNr = value; }
        }
        public string Mail
        {
            get
            {
                return mail;
            }
            set
            {
                mail = value;
            }
        }

        public string Adresse
        {
            get
            {
                return adresse;
            }
            set
            {
                adresse = value;
            }
        }

        public int Postnr
        {
            get
            {
                return postnr;
            }
            set
            {
                postnr = value;
            }
        }

        public string Bynavn
        {
            get { return bynavn; }
            set { bynavn = value; }
        }

        public override string ToString()
        {
            return string.Format(this.fornavn + " " + this.efternavn + "\n" + this.adresse + "\n" + this.postnr + " " + this.bynavn + "\n" + this.mail+"\n"+this.tlfNr);
        }
        
        public List<Scooter> HentKundenScooter(int Knr)
        {
            return Kunde_DB.HentKundensScooter(Knr);
        }
        
    }
}
